/**
 * <br>项目名: fastdfs-util
 * <br>文件名: FileByteUtil.java
 * <br>Copyright 2015 恒昌互联网运营中心
 */
package com.credithc.fastdfs.util;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.io.IOUtils;

/**
 * <br>
 * 类 名: FileByteUtil <br>
 * 描 述: 描述类完成的主要功能 <br>
 * 作 者: zj <br>
 * 创 建： 2015年4月29日 <br>
 * 版 本：v1.0.0 <br>
 * <br>
 * 历 史: (版本) 作者 时间 注释
 */
public class FileByteUtil {
	public static void main(String[] args) throws Exception {
		File file = new File("f:/test.doc ");
		byte[] fileByte = file2byte(file);
		byte2file(fileByte, "f:/test2.doc ");
	}

	public static byte[] file2byte(File f) throws IOException {
		return file2byte(f.getPath());
	}

	public static byte[] file2byte(String f) throws IOException  {
		InputStream in = new FileInputStream(f);
		byte[] tmp = new byte[512];
		ByteArrayOutputStream out = new ByteArrayOutputStream();
		int bytesRead = in.read(tmp);
		while (bytesRead != -1) {
			out.write(tmp, 0, bytesRead);
			bytesRead = in.read(tmp);
		}
		in.close();
		out.flush();
		out.close();
		return out.toByteArray();
	}

	public static void byte2file(byte[] data, String fn) throws IOException {
		OutputStream out = new FileOutputStream(fn);
		if(data!=null){
			out.write(data);
		}
		out.flush();
		out.close();
	}
}
